草庐IT

c++ - QML Qt openUrlExternally

全部标签

c++ - make后如何运行.o文件

我一直在尝试从https://github.com/rinon/Simple-Homomorphic-Encryption运行一个C++程序如README中所述,我运行了以下命令,makemaketestmakedemo现在,我的目录中有以下文件,zakirhussain@zakirhussain-K52F:~/Simple-Homomorphic-Encryption$lscircuit.cppdemo_vote_counter.cppfully_homomorphic.cppmain.osecurity_settings.htest_suite.outilities.ocircui

c++ - C++ : why does free not accept a const void*, 中的 malloc/free 有更好的方法吗?

这个问题在这里已经有了答案:UnabletofreeconstpointersinC(12个答案)关闭8年前。将C++11代码连接到某些C回调,我必须传递constchar*const*,即字符串数组。这是我的代码的简化版本:intmain(int,char**){constintcnt=10;constchar*const*names=static_cast(malloc(sizeof(char*)*cnt));//...allocatingnames[0],etc.comingsoon...the_c_function(names);free(names);return0;}所以我

c++ - 是否有任何 C 或 C++ 编译器不将 wctrans_t 和 wctype_t 定义为类型 wchar_t 的原因?

实际上,我正在比较编程语言之间的数据类型,这是我在阅读C和C++标准时遇到的问题。引用自C11,wctrans_tisascalartypethatcanholdvalueswhichrepresentlocale-specificcharactermappingswctype_tisascalartypethatcanholdvalueswhichrepresentlocale-specificcharacterclassifications短语ascalartype表示C11不限制wctrans_t和wctype_t为特定标量类型。我的MinGWGCC4.8实现了wctrans_t

c++ - 包含 .c 文件和 .h 文件有什么区别

很多时候,当我看其他人的代码时,我看到有些包含.h文件,有些包含.c/.cpp文件。有什么区别? 最佳答案 这取决于文件中的内容。#include预处理器指令只是将引用的文件插入原始文件中的那个位置。因此,实际的编译器阶段(在预处理器之后运行)看到的是所有插入的结果。头文件通常设计为通过#include使用。源文件不是,但有时是有道理的。例如,当您有一个仅包含定义和初始化程序的C文件时:constuint8_timage[]={128,128,0,0,0,0,...lotsmore...};然后通过使用#include使它对某些代码

c++ - 如何在C/C++中实现确定性多线程?

众所周知,线程作为一种计算模型是不确定的。然而,在某些情况下,我们希望利用多线程并行计算带来的性能提升,同时保持执行的确定性,以便于满足一些通用需求,例如调试或一些特定需求。我知道可以为特定任务实现确定性多线程,但我期待一种通用且优雅的方式(也就是说,不需要大量琐碎的工程工作)在C/C++中实现它。什么类型的解决方案并不重要:可以通过某些库、某些平台、某些通用方法或任何其他方式来实现它。 最佳答案 您实现确定性多线程的方式与您拥有可变常量的方式相同——但事实并非如此。相反,您使用各种形式的同步(包括互斥锁、信号量、条件变量、信号等)

c++ - 如何将二维数组相互分配?

组件我有一个字符串,例如字符block[4][256]="";我有一句话charsentence[256]="Bobwalkedhisdog";我还有一个迭代器变量intpos=0;我正在努力实现的目标我正在尝试将数组sentence中的每个单词按顺序分配到二维block数组block中。例如,假设我有这段代码(我自己写的-没有按我的计划工作)for(intx=0;x我怎么看我通过处理这个问题来看待它的方式是,我需要先扫描句子,直到遇到一个空格''字符,一个空白。遇到这种情况后,我必须重新扫描句子并开始将所有字符添加到该空格''的位置到我的block数组block[y][z]的第一段中

c++ - 当 JSON 中存在非法字符时,如何防止 JSON 解析器崩溃?

由于一些通信错误,我有时会收到带有一些非法字符的JSON字符串:"{messageType\":\"Test1\",\"from\":\"F2D0B5C6-9875-46B5-8D4F\"}����1"这些非法字符使我的JSON解析器崩溃。我正在使用RapidJSONJSON解析器(C/C++)。你能告诉我是否有一种方法可以从字符串中过滤掉这些不需要的字符并验证json字符串的完整性。 最佳答案 这不是解析器中的错误。解析器验证空终止符之前的尾随字符是否为空格。并在发生错误时返回错误代码。但是如果没有空终止符,可能会导致段错误,类似

c++ - XOR 交换算法中运算符的未定义行为?

voidswap(int*a,int*b){if(a!=b)*a^=*b^=*a^=*b;}因为上面的*a^=*b^=*a^=*b只是*a=*a^(*b=*b^(*a=*a^*b)),可以(例如)在第三个*a之前对第二个*a进行求值(对于XOR)修改(由=)?用C99/C11/C++98/C++11写有关系吗? 最佳答案 C++11标准说:5.17/1:Theassignmentoperator(=)andthecompoundassignmentoperatorsallgroupright-to-left.(...)theassi

c++ - 参数列表中的 C 函数声明

我在C代码中发现了一些令人困惑的东西structSomeStruct{//...void(*f)(constvoid*x);};voiddo_some(voidf(constvoid*x)){//what?structSomeStruct*v;//...v->f=f;}据我所知,do_some采用函数而不是函数指针。但是voiddo_some(void(*f)(constvoid*x))在实践中有什么区别?我应该什么时候使用它?这在C++中允许吗? 最佳答案 没有区别。这只是语法糖。它在C和C++中都是允许的。函数参数只是被编译器重

c++ - 将 char[][] 转换为 char**

我有一个char[][]charc[2][2]={{'a','b'},{'c','d'}};如何将其转换为char**?此处的目标是使用转换后的char**作为main函数的输入,该函数只接受char**作为其输入。两种C/C++解决方案都是可以接受的。 最佳答案 虽然您可以轻松地从char[]切换到char*,但char[][]和字符**:您的char[2][2]是一个二维数组,所有元素都连续存储。为了访问一个元素,编译器计算知道每一行大小的偏移量。char**指向一个包含指向char的指针的数组。要访问一个元素,您的编译器会计算